今天要做的是針對昨天做出的推論模組,做實際測試
⸻
主要目標:
• 驗證 Rust .so 模組輸出與 PyTorch 一致
• 實測多次推論在 Rust 是否比 Python 快
• 量化比較結果(平均延遲、總耗時、吞吐量)
Task 1:準備 PyTorch 輸出基準資料
• 編寫 Python 腳本:
• 隨機產生 N 筆輸入資料 X(torch.randn(N, input_dim))
• 用 PyTorch 模型跑出對應的 Y = model(X)
• 儲存為 .npy 或 .json:方便 Rust 載入驗證
Task 2:撰寫 Rust 推論測試程式
• 載入 model.npz(用 .so 或直接函式)
• 載入 input.npy
• 逐筆做推論,並與 output_ref.npy 比較誤差
• 計算平均誤差 / 最大誤差(精度驗證)
Task 3:效能測試 - 多筆推論速度
• 使用 std::time::Instant 計算推論時間
• 支援兩種測試:
• 單執行緒
• 多執行緒(使用 rayon::par_iter())
指標要列印:
• 總推論筆數
• 總耗時(秒)
• 平均每筆推論延遲(µs)
• 每秒推論次數(吞吐量 QPS)
Task 4:撰寫 Python 版效能對照程式
• 使用 PyTorch 載入模型
• 對相同 input.npy 資料執行推論
• 測量總時間 / QPS
Task 5:統一輸出報告
• 寫一個測試報告腳本或表格,輸出
這幾天身體不舒服,先放上tasks,之後補齊.